package com.mcb.autopublish.demos.web.vo;

import com.google.gson.JsonObject;
import lombok.Data;
import lombok.ToString;

/**
 * <p>
 *
 * </p>
 *
 * @author mcb
 * @since 2024/6/6
 */
@Data
@ToString
public class WeChatArticle {

    /**
     *  标题
     */
    private String title;

    /**
     * 作者
     */
    private String author;

    /**
     * 图文消息的摘要，仅有单图文消息才有摘要，多图文此处为空。如果本字段为没有填写，则默认抓取正文前54个字。
     */
    private String digest;

    /**
     * 图文消息的具体内容，支持HTML标签，必须少于2万字符，小于1M，且此处会去除JS,涉及图片url必须来源 "上传图文消息内的图片获取URL"接口获取。外部图片url将被过滤。
     */
    private String content;

    /**
     * 图文消息的原文地址，即点击“阅读原文”后的URL
     */
    private String content_source_url;

    /**
     * 图文消息的封面图片素材id（必须是永久MediaID）
     */
    private String thumb_media_id;
     /**
     * 图文消息的封面图片素材id（必须是永久MediaID）
     */
    private String need_open_comment;
     /**
     * Uint32 是否粉丝才可评论，0所有人可评论(默认)，1粉丝才可评论
     */
     private String only_fans_can_comment;
     /**
     * 封面裁剪为2.35:1规格的坐标字段。
      * 以原始图片（thumb_media_id）左上角（0,0），右下角（1,1）建立平面坐标系，
      * 经过裁剪后的图片，其左上角所在的坐标即为（X1,Y1）,右下角所在的坐标则为（X2,Y2），用分隔符_拼接为X1_Y1_X2_Y2，每个坐标值的精度为不超过小数点后6位数字。
      * 示例见下图，图中(X1,Y1) 等于（0.1945,0）,(X2,Y2)等于（1,0.5236），所以请求参数值为0.1945_0_1_0.5236。
     */
     private String pic_crop_235_1;
     /**
     * 封面裁剪为1:1规格的坐标字段，裁剪原理同pic_crop_235_1，裁剪后的图片必须符合规格要求。
     */
     private String pic_crop_1_1;


    /**
     * 将对象转换为json字符串
     * @return
     */
     public String toJsonString() {
         JsonObject articleJson = new JsonObject();
         articleJson.addProperty("title", title);
         articleJson.addProperty("author", author);
         articleJson.addProperty("digest", digest);
         articleJson.addProperty("content", content);
         articleJson.addProperty("content_source_url", content_source_url);
         articleJson.addProperty("thumb_media_id", thumb_media_id);
         articleJson.addProperty("need_open_comment", need_open_comment);
         articleJson.addProperty("only_fans_can_comment", only_fans_can_comment);
         return articleJson.toString();
     }




}
